pfn_type = xc_memalign(PAGE_SIZE, ROUNDUP(
MAX_BATCH_SIZE * sizeof(*pfn_type), PAGE_SHIFT));
pfn_batch = calloc(MAX_BATCH_SIZE, sizeof(*pfn_batch));
- if ( (pfn_type == NULL) || (pfn_batch == NULL) )
+ pfn_err = malloc(MAX_BATCH_SIZE * sizeof(*pfn_err));
+ if ( (pfn_type == NULL) || (pfn_batch == NULL) || (pfn_err == NULL) )
{
ERROR("failed to alloc memory for pfn_type and/or pfn_batch arrays");
errno = ENOMEM;
if ( batch == 0 )
goto skip; /* vanishingly unlikely... */
- pfn_err = realloc(pfn_err, sizeof(int) * batch);
region_base = xc_map_foreign_bulk(
xc_handle, dom, PROT_READ, pfn_type, pfn_err, batch);
if ( region_base == NULL )
* IOCTL_PRIVCMD_MMAPBATCH_V2 is not supported - fall back to
* IOCTL_PRIVCMD_MMAPBATCH.
*/
- xen_pfn_t *pfn = calloc(num, sizeof(*pfn));
+ xen_pfn_t *pfn = malloc(num * sizeof(*pfn));
if ( pfn )
{
return NULL;
}
- err = calloc(num, sizeof(*err));
+ err = malloc(num * sizeof(*err));
if (!err)
return NULL;
return NULL;
}
- pfn = calloc(num, sizeof(*pfn));
+ pfn = malloc(num * sizeof(*pfn));
if (!pfn) {
errno = ENOMEM;
return NULL;
err[i] = -EINVAL;
break;
}
- }
+ } else
+ memset(err, 0, num * sizeof(*err));
free(pfn);